import { IPSModelObject } from '../../ipsmodel-object';
import { IPSDEField } from '../defield/ipsdefield';

/**
 *
 * 子接口类型识别属性[]
 * @export
 * @interface IPSDERDEFieldMap
 */
export interface IPSDERDEFieldMap extends IPSModelObject {
  /**
   * 代码标识
   * @type {string}
   */
  codeName: string;

  /**
   * 主实体属性
   *
   * @type {IPSDEField}
   */
  getMajorPSDEField(): IPSDEField | null;

  /**
   * 主实体属性
   *
   * @type {IPSDEField}
   */
  get majorPSDEField(): IPSDEField | null;

  /**
   * 主实体属性（必须存在）
   *
   * @type {IPSDEField}
   */
  getMajorPSDEFieldMust(): IPSDEField;

  /**
   * 从实体属性
   *
   * @type {IPSDEField}
   */
  getMinorPSDEField(): IPSDEField | null;

  /**
   * 从实体属性
   *
   * @type {IPSDEField}
   */
  get minorPSDEField(): IPSDEField | null;

  /**
   * 从实体属性（必须存在）
   *
   * @type {IPSDEField}
   */
  getMinorPSDEFieldMust(): IPSDEField;
}
